import { ref } from 'vue';

export const request = (options) => {
	return new Promise((resolve, reject) => {
		
		let BASE_URL = 'http://pcapi-xiaotuxian-front-devtest.itheima.net'
		const header = {
			'source-client': 'miniapp',
			// Authorization: `Bearer ${token}`,
			...options.header // 可以传入额外的请求头参数
		}
		
		// 获取本地数据
		let userInfo = ref({})
		userInfo.value = uni.getStorageSync('member')
		let token = userInfo.value.token
		if(token){
			header.Authorization = token
		}
		uni.request({
			url: BASE_URL + options.url, //接收请求的API
			method: options.method || 'GET', //接收请求的方式,如果不传默认为GET
			data: options.data || {}, //接收请求的data,不传默认为空
			header: header, //接收请求的header
			success(res) {
				// 这里可以写接口返回401的处理情况
				if(res.statusCode >= 200 && res.statusCode <= 300){
					resolve(res.data)
				}else if(res.statusCode === 401){
					// 清除用户信息 跳转到登录页
					uni.navigateTo({
						url: '/pages/my/my'
					})
					uni.showToast({
						icon: 'none',
						title: res.data.msg || '权限错误'
					})
					// 标记为失败
					reject(res)
				}
				
			},
			fail: (err) => {
				reject(err)
			}
		})
	})
}